package com.liusr.template.config;

import org.springframework.context.annotation.Bean;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

/**
 * @author Liusr
 * @date 2023/2/13
 * @package com.liusr.template.config
 * @Description: 跨域配置
 */
public class CorsConfig {

	/**
	 * 配置跨域
	 * TODO 这里的配置条件都可以抽取出来到yml配置文件里
	 *
	 * @return CorsFilter
	 */
	@Bean
	public CorsFilter corsFilter() {
		CorsConfiguration config = new CorsConfiguration();
		// 设置允许跨域请求的域名
		config.addAllowedOrigin("*");
		// 是否允许证书
		config.setAllowCredentials(true);
		// 设置允许的方法
		config.addAllowedMethod("*");
		// 允许任何头
		config.addAllowedHeader("*");
		UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
		configSource.registerCorsConfiguration("/**", config);
		return new CorsFilter(configSource);
	}
}
